package com.ruoyi.project.loan.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 还款记录对象 repayment_record
 *
 * @author ruoyi
 * @date 2025-11-11
 */
public class RepaymentRecord extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * $column.columnComment
     */
    private Long recordId;

    /**
     * 还款计划
     */
    @Excel(name = "还款计划" )
    private Long planId;

    /**
     * 实还金额
     */
    @Excel(name = "实还金额" )
    private Long repayAmount;

    /**
     * 还款时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd" )
    @Excel(name = "还款时间", width = 30, dateFormat = "yyyy-MM-dd" )
    private Date repayTime;

    /**
     * 支付渠道
     */
    @Excel(name = "支付渠道" )
    private String channel;

    /**
     * 交易流水号
     */
    @Excel(name = "交易流水号" )
    private String transactionNo;

    public Long getRecordId() {
        return recordId;
    }

    public void setRecordId(Long recordId) {
        this.recordId = recordId;
    }

    public Long getPlanId() {
        return planId;
    }

    public void setPlanId(Long planId) {
        this.planId = planId;
    }

    public Long getRepayAmount() {
        return repayAmount;
    }

    public void setRepayAmount(Long repayAmount) {
        this.repayAmount = repayAmount;
    }

    public Date getRepayTime() {
        return repayTime;
    }

    public void setRepayTime(Date repayTime) {
        this.repayTime = repayTime;
    }

    public String getChannel() {
        return channel;
    }

    public void setChannel(String channel) {
        this.channel = channel;
    }

    public String getTransactionNo() {
        return transactionNo;
    }

    public void setTransactionNo(String transactionNo) {
        this.transactionNo = transactionNo;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("recordId", getRecordId())
                .append("planId", getPlanId())
                .append("repayAmount", getRepayAmount())
                .append("repayTime", getRepayTime())
                .append("channel", getChannel())
                .append("transactionNo", getTransactionNo())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}
